package com.yanqingshan.platform.module.sys.service;

import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yanqingshan.platform.module.sys.model.domain.SysResource;
import com.yanqingshan.platform.module.sys.model.vo.CurrentUserInfoRespVO;
import com.yanqingshan.platform.module.sys.model.vo.SysResourceRespVO;

import java.util.List;

/**
 * 功能描述: 系统资源表 Service接口
 *
 * @author yanqs
 * @since 2023-05-15
 */
public interface SysResourceService extends IService<SysResource> {
    /**
     * 校验资源别名唯一性
     * @param resourceKey 资源key
     * @param id 主键id
     * @return long
     */
    long validateResourceKey(String resourceKey, Long id);

    /**
     * 查询资源树结构信息
     * @return
     */
    List<Tree<Long>> listForManage();

    /**
     * 查询资源树结构信息(角色授权使用)
     * @param roleId
     * @return
     */
    SysResourceRespVO listForGrant(Long roleId);


    List<SysResource> listResourceEntitiesByRoleId(Long roleId);

    CurrentUserInfoRespVO listForLogin(Long userId);

    List<Tree<Long>> listAllResourcesByUserId(Long userId);

    List<String> listAllPermissionsByUserId(Long userId);
}
